package com.ruoyi.system.service;

import java.util.List;
import com.ruoyi.system.domain.SysSerialRule;

/**
 * 单据规则Service接口
 * 
 * @author huikai
 * @date 2025-03-13
 */
public interface ISysSerialRuleService 
{
    /**
     * 查询单据规则
     * 
     * @param ruleId 单据规则主键
     * @return 单据规则
     */
    public SysSerialRule selectSysSerialRuleByRuleId(Long ruleId);

    /**
     * 查询单据规则
     *
     * @param ruleCode 单据规则编码
     * @return 单据规则
     */
    SysSerialRule selectSysSerialRuleByRuleCode(String ruleCode);

    /**
     * 查询单据规则列表
     * 
     * @param sysSerialRule 单据规则
     * @return 单据规则集合
     */
    public List<SysSerialRule> selectSysSerialRuleList(SysSerialRule sysSerialRule);

    /**
     * 新增单据规则
     * 
     * @param sysSerialRule 单据规则
     * @return 结果
     */
    public int insertSysSerialRule(SysSerialRule sysSerialRule);

    /**
     * 修改单据规则
     * 
     * @param sysSerialRule 单据规则
     * @return 结果
     */
    public int updateSysSerialRule(SysSerialRule sysSerialRule);

    /**
     * 批量删除单据规则
     * 
     * @param ruleIds 需要删除的单据规则主键集合
     * @return 结果
     */
    public int deleteSysSerialRuleByRuleIds(Long[] ruleIds);

    /**
     * 删除单据规则信息
     * 
     * @param ruleId 单据规则主键
     * @return 结果
     */
    public int deleteSysSerialRuleByRuleId(Long ruleId);

    /**
     * 生成单据编号
     * @param ruleCode
     * @return
     */
    String generateSerialNumber(String ruleCode);
}
